Database drivers are software modules that enable clients (e.g., applications) to communicate with database servers (e.g., database management systems). Typically, a security mechanism is used to ensure communication between a client and a database server is secure. A variety of predefined security mechanisms are currently available, ranging from simple user identification and password checking to complex Kerberos authentication.
Multiple types of security mechanisms are usually supported by a database server for authenticating clients seeking to communicate with the database server. Since a database driver relies upon a security mechanism to obtain authorization from the database server before access can be granted to a client, the database driver must be able to interoperate with the security mechanism used by the client. However, it is not practical to include support for every type of security mechanism that may be used by a client in the database driver.
In addition, some clients may want to use a user-defined security mechanism rather than a predefined security mechanism. Although some database servers provide the flexibility to plug in user-defined security mechanisms, database drivers presently do not have the necessary interoperability with user-defined security mechanisms.
Accordingly, there is a need to provide support for multiple security mechanisms in database drivers.